Generation of Dynamic Content Interfaces

ABSTRACT

Example embodiments relate to generation of dynamic content interfaces based on device capabilities and user entitlements. Multiple devices associated with a user account may each request a content interface. Generation of the content interfaces may be based on capability information of the devices and a tier entitlement associated with the user account. A service included in both the content interfaces may be assigned a same virtual channel in each of the content interfaces.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/562,213 filed on Dec. 5, 2014, entitled “Generation of DynamicContent Interfaces”, which is also a continuation of U.S. patentapplication Ser. No. 13/469,860, filed May 11, 2012, entitled“Generation of Dynamic Content Interfaces”, issued as U.S. Pat. No.8,935,726 on Jan. 13, 2015, the disclosure of each is herebyincorporated by reference in its entirety.

BACKGROUND

Known implementations of content interfaces, such as channel maps, haveshortcomings. For example, such interfaces may fail to account forvariations in device system parameters such as entitlements. Forexample, a particular user may not be entitled to premium channel accessin a network. However, because multiple channel maps may be maintained,inefficiencies further increase. The following disclosure identifies andprovides solutions for implementations of content interfaces.

BRIEF SUMMARY

In light of the foregoing background, the following presents asimplified summary of the present disclosure in order to provide a basicunderstanding of some aspects of the invention. This summary is not anextensive overview of the invention. It is not intended to identify keyor critical elements of the invention or to delineate the scope of theinvention. The following summary merely presents some concepts of theinvention in a simplified form as a prelude to the more detaileddescription provided below.

The disclosure relates to a system, device, computer readable media, andmethod to dynamically generate content interfaces based on devicecapabilities and user entitlements. Aspects of the disclosure may beprovided in one or more computer-readable medium havingcomputer-executable instructions that, when executed by at least oneprocessor, cause a computer, user terminal, or other apparatus to atleast perform one or more of the processes described herein. Thecomputer-readable medium may be a memory and/or may be non-transitory.

In some aspects, a first request for a first dynamic content interfacereceived from a first device and a second request for a second dynamiccontent interface received from a second device may be processed,wherein the first and second devices are associated with a user account.The first dynamic content interface may be generated based on firstcapability information included in the first dynamic content interfacerequest and a tier entitlement associated with the user account. Thesecond dynamic content interface may be generated based on secondcapability information included in the second dynamic content interfacerequest and the tier entitlement associated with the user account,wherein a service identified in both the first and second dynamiccontent interfaces is assigned a same virtual channel in each of thecontent interfaces.

BRIEF DESCRIPTION OF THE DRAWINGS

Understanding of the disclosure may be facilitated by consideration ofthe following detailed description of the embodiments, taken inconjunction with the accompanying drawings, in which like numerals referto like parts and in which:

FIG. 1 is a block diagram that illustrates an example system, inaccordance with various aspects of the disclosure.

FIG. 2 is a block diagram that illustrates example aspects ofinteraction between computing devices, in accordance with variousaspects of the disclosure.

FIG. 3 illustrates examples of content interfaces, in accordance withvarious aspects of the disclosure.

FIG. 4 is a flow diagram illustrating a method, in accordance withvarious aspects of the disclosure.

DETAILED DESCRIPTION

It is to be understood that the figures and descriptions have beensimplified to illustrate elements that are relevant for a clearunderstanding, while eliminating, for the purpose of brevity, many otherelements found in typical communication devices, systems andmethodologies. Those of ordinary skill in the art will thus recognizethat other elements and/or steps are desirable and/or may be included.However, because such elements and steps are well known in the art, adiscussion of such elements and steps is not provided herein.Furthermore, the embodiments identified and illustrated herein are forexemplary purposes only, and are not meant to be exclusive or limited intheir description.

FIG. 1 is a block diagram that illustrates an example system forproviding dynamic content interfaces, in accordance with various aspectsof the disclosure. A content interface may provide a computing devicewith information to enable access to a service. In an example, a contentinterface may be a channel map or a content map. Content interface mayalso list services that may be accessed by a content device by mannersinstead of or in addition to channels. Services may include access toapplications, documents, games, video programs, audio programs, othertypes of content, and combinations thereof. Services may be availablefor free or for a fee. Local Office 120 (e.g., headend) and one or morecomputing devices 122 may be directly or indirectly associated with anetwork 124 (e.g., provider or Multiple System Operator (MSO) network).In an example, a computing device 122 may be a server. Local Office 120may include a master facility, under the control of a provider, such asthe MSO, for receiving content, such as, for example, television videoprograms, for processing and distribution over network 124. Network 124may allow for distribution of content and data, from Local Office 120 toone or more computing devices 122. The one or more computing devices 122may be and/or include one or more servers, relays, and the like, such asone or more provider edge servers. An edge server may be abi-directional communication server that may include storage, such as acache, for storing frequently requested data. The computing devices 122may distribute content to one or more local video generation devices(VGDs) 12 via a network 126.

VGD 12 may present content (e.g., video, audio) to a user received fromthe Local Office 120 or other content source, or may be coupled toanother video display device, such as, for example, user equipment 50for presenting the content. VGD 12 may be, for example, a display, atelevision set, a mobile phone, a set top box, computer, or other devicecapable of audiovisual presentation. User equipment 50 may be, forexample, a display, a television set, computer monitor, a mobile device,and the like. In an example, VGD 12 may include an embedded cable modem(eCM) operable using the “Data-Over-Cable Service InterfaceSpecifications, e-DOCSIS™ Specification, CM-SP-eDOCSIS-I18-090529,” thecontents of which are herein incorporated by reference in theirentirety. An eCM may perform a network entry, or “provisioning,” processin accordance with the e-DOCSIS specification to obtain a networkconfiguration, the time and date, download a DOCSIS configuration file,and registering and completing DOCSIS network entry. Further, althoughthe examples discussed in this disclosure include video contentdelivery, those skilled in the art will appreciate, in light of thedisclosure, that the examples discussed herein may additionally beapplicable to content delivery systems generally.

Each of devices 12, 50, 120, and 122 may include at least one processorand may include one or more computer readable media storing computerexecutable instructions that, when executed, cause one or more of thedevices 12, 50, 120, and 122 to perform the operations described herein.For example, FIG. 1 illustrates a computing device 122 including aprocessor 140 and computer readable media 142. Each depicted device inFIG. 1, as well as in the other figures, may also include a processor140 and computer readable media embodied as memory 142. In an example,computer readable media may be tangible and may be non-transitory.Computer readable media may be any available media that may be accessedby a computing device 122 (e.g., server) and include both volatile andnonvolatile media, removable and non-removable media. Computer storagemedia include, but is not limited to, a hard drive, a flash drive,random access memory (RAM), read only memory (ROM), electronicallyerasable programmable read only memory (EEPROM), flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical disk storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium that canbe used to store the desired information and that can be accessed by acomputing device.

FIG. 2 is a block diagram that illustrates example aspects ofinteraction between a computing device 122 and video generation devices12 a-b, and FIG. 3 illustrates examples of a tier channel map 300 anddynamic channel maps 216, in accordance with various aspects of thedisclosure. Initially, a user may sign up with a service provider toaccess certain services. For example, a user may sign up for servicesproviding access to one or more of video programs, audio programs, data,applications, games, documents, telephone services, or othernetwork-based services. In an example, a service provider may providedifferent tiers of services that a user can select to purchase. Forinstance, a tier may correspond to a set of television channels, wherecontent on a particular channel is provided by a particular contentcreator (e.g., channel 5 for HBO®). In an example, a first tier may be abasic tier providing access a first predetermined set of televisionchannels, a second tier may be an expanded tier providing access to asecond predetermined set of television channels, and a third tier mayprovide a user with ala carte selection of which channels to include.Any number of tiers may be used, and one or more channels may beincluded in multiple tiers or may be unique to a particular tier. Tiersmay also list one or more games, applications, documents, or othercontent items to which a subscribing user may access.

To obtain access to a particular tier, the user may electronicallysubscribe using their VGD 12 by communicating a request to the computingdevice 122 identifying a particular tier, or by contacting a customerservice representative. Once a particular tier has been ordered, thecomputing device 122 may receive and store information on tierentitlement 202 in memory 142 (e.g., a database), for this useridentifying the tier to which the user has subscribed. In an example,computing device 122 may establish an account in memory 142 for a userspecifying to which tier of entitlements a user has subscribed.Entitlements may include channel entitlements, program entitlements,authorizations, application entitlements, document entitlements, gameentitlements, and the like, for example. Memory 142 may also storeentitlements for other users served by the computing device 122. Memory142 may store a product and service catalog 204 listing availableproducts and services that can be provided to a user, as well as sourcesfor the products and services.

In an example, catalog 204 may list sources for each service. Forexample, a particular service may be available from one or more SD videosources, HD video sources, or wireless access protocol (WAP) sources orsimilar mobile video sources. Memory 142 may include, for example, arelational database relating a particular service with multiple sourcesfor that service, such as by type, by market, by geography, or by otherfactors.

For each tier, computing device 122 may maintain a tier channel map 300.With reference to FIG. 3, the tier channel map 300 may provideinformation on the services available in that tier. The tier channel map300 may be a lineup of services available to users and may includeanalog and digital channel data. In an example shown in FIG. 3, tierchannel map 300 may include a virtual channel column 304, a channelnumber column 306, a frequency column 308, a source identifier column310, and a resolution column 312. The virtual channel column 304 maylist a virtual channel of a service, rather than an actual channel onwhich a VGD 12 receives the service. In an example, a user may accesscontent using different VGDs 12, where a first VGD may access a versionof content in an HD format and a second VGD may access a version of thecontent in an SD format. Virtual channels may be used so that a user mayreceive content from a source on the same virtual channel, regardless ofwhich channel a VGD 12 is actually being used to access the content. Asseen in tier channel map 300, the virtual channel for both SD and HDchannels of NBC is the same (e.g., virtual channel 5), even though theSD channel is transmitted at frequency 757 MHz and the HD channel istransmitted at frequency 1003 MHz. Similarly, first and second dynamicchannel maps 216 a-b identify a same virtual channel for both SD and HDchannels of NBC. In a further example, the virtual channel for both SDand HD channels of NBC may be the same (e.g., virtual channel 5), eventhough the SD channel is transmitted at frequency 757 MHz and the HDchannel is provided to the VGD via a data stream. Use of virtualchannels may provide, for example, the user with a consistent experienceregardless of whether they are viewing a service in their home using aset top box, or on the go using a mobile phone.

With reference to the tier channel map 300 in FIG. 3, the channel numbercolumn 306 may identify a particular frequency band on which a channelis transmitted. Examples of transmission may include broadcasting andunicasting. The frequency column 308 may identify a frequencycorresponding to a particular channel number. Instead of or in additionto identifying a frequency, the tier channel map 300 may identify anetwork address of a device providing a data stream (e.g., MPEG stream)of the content. For example, VGD 12 may use the network address toaccess a data stream providing an application, a game, a document, orother content item. The source identifier column 310 may identify acreator of content transmitted on a particular channel or data stream.The resolution column 312 may identify the resolution of programmingbeing transmitted on a particular channel. For example, a resolution ofa program may be one or more of SD multicast, HD multicast, and lowbandwidth multicast.

Tier channel map 300 may be considered a superset of information fromwhich dynamic channel maps 216 may be created. In an example, tierchannel map 300 may include information on services that not all VGDs 12a user may have are capable of rendering. For instance, tier channel map300 may include information on high definition (HD) channels andstandard definition channels (SD) of a particular tier.

Frequently, a user may have more than one VGD 12. For example, a usermay have a gateway (e.g., set top box), a tablet computer (e.g., anIPAD®), and a mobile phone. Each of these VGDs may have differentcapabilities for rendering content. In an example, the VGDs may differin the resolution of video they are able to display. Some may be able topresent high definition video, others may only be able to presentstandard definition video, and some may only be able to present lowdefinition video. To accommodate for these differences and rather thansending the entire tier channel map 300, computing device 122 maygenerate a dynamic channel map 216 that is tailored to the capabilitiesof VGDs 12. Examples of dynamic channel maps 216 a-b are shown in FIG. 3and requesting a dynamic channel map is discussed in FIG. 2.

With reference to FIG. 2, after VGD 12 a is initially provisioned, VGD12 a may communicate a request 214 a for a dynamic channel map 216 a tothe computing device 122. Request 214 a may be responsive to a query orping, such as during provisioning, or may be proactively generated, inwhole or in part, by the video generation device 12 a. Request 214 a maybe embodied in Internet Protocol (IP) data or non-IP data. Request 214 amay include a device identifier and/or a user identifier to uniquelyidentify the user and the type of VGD that sent the request. Request 214a may also include capability information of the requesting VGD, suchas, for example, the features supported by the VGD 12 a. In an example,request 214 a may indicate that the VDG 12 a is a mobile device, HDdevice, or non-HD device. Also, request 214 a may include information ona retailer of a device, a part number of the device, a serial number ofthe device, or the like, from which a device type may be assessed. Thisinformation may be included in request 214 a, or, for example, request214 a may include a unique device identifier that may be matched to adevice type for the VGD 12 a identified by that identifier in memory142. Upon receipt of request 214 a, computing device 122 may alsointeract with the VGD 12 a prompting the user to login or provide otheridentifying information. After or as part of logging in, the computingdevice 122 may query the VGD 12 a for information on its capabilities.

Computing device 122 may process request 214 a to look up theentitlements 202 associated with an account of the user stored in memory142. The lookup may include confirmation that the requesting VGD 12 a isauthorized to receive a dynamic channel map 216 a, such as confirmationthat the requesting VGD 12 a is correspondent to a paid subscriber, forexample. Upon lookup, computing device 122 may match the requesting VGD12 a with the user indicated as correspondent to that VGD 12 a in memory142, and may retrieve a list of services specified in the user's accountto which the requesting user is entitled to access.

Based on the capabilities information received from VGD 12 and theservices to which the user is entitled to access, computing device 122may construct a dynamic channel map 216 a tailored to the services therequesting VGD 12 a can render. For example, a VGD 12 a that can onlyrender SD video channels would not receive information on HD videochannels. VGD 12 b, also shown in FIG. 2, may similarly interact withthe computing device 122 to obtain a dynamic channel map 216 b.

FIG. 3 illustrates two example dynamic channel maps 216 a-b inaccordance with various aspects of the disclosure. Computing device 122may generate dynamic channel maps 216 a-b by filtering the tier channelmap 300 based on user entitlements and device capabilities. A dynamicchannel map 216 a or 216 b may list services the requesting VGD iscapable of rendering for the tier to which the user has subscribed. Inan example, computing device 122 may create a first dynamic channel map216 a for a VGD 12 a that cannot render HD content, and a second dynamicchannel map 216 b for a VGD 12 b that can render HD content. Servicesthat are available may also include applications, documents, games, etc.If a service is only available in one format but not the other (e.g., inHD but not SD), the dynamic channel map 216 a may indicate as such inthe resolution column. For example, the HDNET channel may only beavailable in HD, and not SD, and the resolution column of the firstdynamic channel map 216 a may indicate that the HDNET channel isunavailable. If a service is only available in SD, and a VGD 12 canrender both HD and SD, computing device 122 may include that service inthe second dynamic channel map 216 b and indicate its resolution. In anexample, computing device 112 may generate and communicate dynamicchannel maps 216 a-b to different VGDs 12 based on a tier entitlementassociated with the same user's account.

In addition to user entitlements and device capabilities, computingdevice 122 may also consider other dynamic factors when generating adynamic channel map 216. Such other dynamic factors may includemarket-available sources, sources switched based on bandwidth usemonitoring, sources dictated by targeting information, such as may beobtained from a user profile, or the like. By way of non-limitingexample, monitoring of entitlements and device capabilities may providemetrics that allow for source selection based on bandwidth availability.More particularly, in accordance with an indication of usage by certainnumbers of a particular device type, as reflected by requests 214,sources may be switched to, or become selectable from, switched digitalvideo (SDV) channels, for example. Thereby, determining a total numberof requests 214 received from different VGDs 12 may provide metrics forunicast/SDV assignment calculations, for example.

In another example, network bandwidth conditions may be a dynamic factorin generating a dynamic channel map 216. For example, computing device122 may receive content from multiple Local Offices 120 or other contentsources. If the VGD 12 is configured to stream content, computing device122 may monitor bandwidth conditions of the network 124 between thecomputing device 122 and each of the Local Offices. For instance,computing device 122 may determine an amount of available bandwidthbetween itself and each of any applicable network nodes, which may beLocal Offices or other nodes, and may store available network bandwidthparameters. Computing device 122 may exclude any Local Offices wherethere is insufficient available bandwidth to stream content from thatLocal Office. For example, content may require 5 Megabits per second(Mbps) and only 4 Mbps of bandwidth may be available to stream thecontent from a particular Local Office. For the remaining Local Offices,computing device 122 may select the Local Office having a highest amountof available bandwidth and include a network address for that LocalOffice in the dynamic channel map 216. The VGD 12 may then use thenetwork address to access the content from the Local Office identifiedin the dynamic channel map 216.

In a further example, geographic location of a VGD 12 may be a dynamicfactor in generating a dynamic channel map 216. For example, computingdevice 122 may determine a geographic location of the VGD 12 either byquerying the VGD 12 or by other manners. As there may be certaingeographic and timing restrictions on when content may be accessed,computing device 122 may generate the dynamic channel map 216 so thatthe VGD 16 may only access local sources for services.

FIG. 4 is a flow diagram illustrating a method 400 of generating adynamic content interface, in accordance with various aspects of thedisclosure. The method may be implemented by computing device 122, orother apparatus or computing device. The steps identified in each blockin the flow diagram may be omitted or repeated one or more times. Themethod may also repeat one or more times, as desired, in whole or inpart. Also, the method may include blocks and steps other than the onesdepicted.

At block 402, a computing device may process a first request for a firstdynamic content interface received from a first VGD and a second requestfor a second dynamic content interface received from a second VGD,wherein the first and second VGDs are associated with a user account. Inan example, computing device 122 may receive a dynamic channel maprequest 216 a from VGD 12 a and a dynamic channel map request 216 b fromVGD 12 b. Both VGDs 12 a-b may be associated with the same user, andhence with the same account of the user stored by memory 142.

At block 404, a computing device may generate the first dynamic contentinterface based on first capability information included in the firstdynamic content interface request and a tier entitlement associated withthe user account. In an example, computing device 122 may generatechannel map 216 a based on capability information received in request216 a and a tier entitlement associated with the user account.

At block 406, a computing device may generate the second dynamic contentinterface based on second capability information included in the seconddynamic content interface request and the tier entitlement associatedwith the account, wherein a service identified in both the first andsecond dynamic content interfaces is assigned a same virtual channel ineach of the content interfaces. In an example, computing device 122 maygenerate channel map 216 b based on capability information received inrequest 216 b. Computing device 122 may assign a same virtual channel toa service included in both channel maps 216 a-b. The flow diagram maythen end or return to any of the preceding blocks.

The example embodiments for dynamic content interface generation thusallow providers, such as MSOs, to deliver different content interfacesto different devices based on capabilities of a requesting videogeneration device and entitlements of a user. Thereby, the exampleembodiments for dynamic content interface generation simplify themaintenance of content interfaces for different provisioning systems,additionally allowing simplified support for alternative VGDs withdistinct features, and additionally readily provides for the additionof, or modification of, available channels, such as newly available HDchannels. For example, as new devices become capable of displaying videoin newly available formats, such as low resolution MPEG4 format beingprovided for mobile devices, dynamic content interface generationdelivers the appropriate content interface, identifying appropriatevideo sources, based on capabilities of the device and userentitlements.

Those of ordinary skill in the art will recognize that manymodifications and variations of the disclosure may be implementedwithout departing from its spirit or scope. Thus, it is intended thatthe disclosure cover the modifications and variations that come withinthe scope of the appended claims and their equivalents.

1. A method comprising: determining, by a first computing device, aplurality of available bandwidth capacities associated with a pluralityof sources of a service available to a second computing device; based oncapability information associated with the second computing device andon a determined available bandwidth capability, of the plurality ofavailable bandwidth capacities, associated with a first source theplurality of sources, generating a first channel map without a firstnetwork address associated with the first source; transmitting, to thesecond computing device, the first channel map; and based on thecapability information and on an updated determined available bandwidthcapacity associated with the first source, transmitting, to the secondcomputing device, a second channel map that associates the first networkaddress with the first source.